﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Coater.Domain
{
    public class Configuration
    {
        #region Program Preferences
        public bool DemoMode { get; set; }
        public bool DisableWindowsTaskBar { get; set; }
        public string ApplicationTitle { get; set; } = "Control Software";
        #endregion Program Preferences
        #region Machine Enables
        public bool EnableCoater { get; set; } = true;
        public bool EnableReflowOven { get; set; }
        public bool Batch { get; set; }
        public bool EnableShuttleLoader { get; set; }
        public bool EnableSECS { get; set; }
        #endregion Machine Enables

        public Coater Coater { get; set; } = new Coater();
        #region Recipe storage path
        public string RecipePath { get; set; } = Application.StartupPath + "Recipe";
        #endregion Recipe storage path

    }

    public class Coater
    {
        #region Communications
        public string ComPort { get; set; }
        #endregion Communications
        #region Run mode
        /// <summary>
        /// 0: Normal
        /// 1: Wafer return
        /// </summary>
        public int RunMode { get; set; } = 0;
        public bool DryRun { get; set; }
        #endregion Run mode
        #region Maintenance
        public int Cycles { get; set; }
        public int Interval { get; set; }
        public int Total { get; set; }
        #endregion Maintenance
        #region Wafer handling
        public bool RobotLoadOptionPresent { get; set; }
        public bool EdgeChuckOptionPresent { get; set; }
        #endregion Wafer handling
        #region Preferences
        public bool UseSMEMASignals { get; set; }
        public bool AutoWaferReady { get; set; }
        public bool UseAsystNetworkInterface { get; set; }
        public bool DefeatLidInterlock { get; set; }
        public bool SlowSequence { get; set; }
        public bool UseVacuumBeforeCentering { get; set; }
        public bool BackupToEntrySensorInWaferReturnMode { get; set; }
        public int WaferVacuumDelay { get; set; }
        public bool EnableWafer8_12SelectionDigitalOutput { get; set; }
        public int WaferPassThroughDelay { get; set; }
        public bool UseWaferEntryDelay { get; set; }
        public int WaferEntryDelay { get; set; }
        public bool EnableAudibleAlarmOff { get; set; }
        public bool CheckUSAtCenter { get; set; }
        public bool PartitionBelts { get; set; }
        public bool EnableBacksideNozzle6 { get; set; }
        public bool EnableOffSweep { get; set; }
        #endregion Preferences
    }


}
